Skip to content

chore(vscode): move the extension to the pymodel.pythinker Marketplace id - #78

Merged
elkaix merged 1 commit into
mainfrom
fix/vscode-extension-rename
Aug 15, 2026
Merged

chore(vscode): move the extension to the pymodel.pythinker Marketplace id#78
elkaix merged 1 commit into
mainfrom
fix/vscode-extension-rename

Conversation

@elkaix

@elkaix elkaix commented Aug 15, 2026

Copy link
Copy Markdown
Member

Related Issue

No issue — the problem is described below.

Problem

The 0.18.0 release failed all six VS Code targets with:

The extension 'pythinker-code' already exists in the Marketplace.
Please use a different 'name' in the package.json file

pythoughts.pythinker-code@0.8.8 was published to both the Visual Studio Marketplace and Open VSX
on 2026-08-08 (visible in the release run for #44) and has since been deleted. Evidence:

  • Both marketplace.visualstudio.com/publishers/pythoughts and /pymodel return 200 and list
    zero extensions.
  • vsce show pythoughts.pythinker-code and vsce show pymodel.pythinker-code → not found.
  • The gallery API (filterType: 7, and a text search for pythinker) → no results.
  • The Open VSX API → Extension not found for both namespaces.
  • marketplace.visualstudio.com/items?itemName=… → 404 for both (a known-good control,
    ms-python.python, returns 200, so the probe is calibrated).

The Marketplace permanently reserves the name of a removed extension, even against its original
publisher
. The old id is unrecoverable, so the extension needs a new one. This blocked 0.17.1 as
well — the extension has not shipped to either registry since the org migration.

What changed

apps/vscode/package.json name: pythinker-codepythinker. The Marketplace id becomes
pymodel.pythinker, matching the CLI binary name.

Unchanged on purpose: publisher (pymodel), displayName ("Pythinker Code"), the npm scope, the
CLI, and all ten pythinker.* contributed command ids — Marketplace identity and runtime command
ids are different namespaces and only the former moves. Renaming the command ids would break every
keybinding and menu contribution.

The manifest name is also the pnpm workspace package name, so the rename mechanically forces:

  • .github/workflows/release.yml — three pnpm --filter pythinker-code run … calls (package,
    publish:vsix, publish:ovsx) would fail with "no projects matched".
  • apps/vscode/scripts/release-extension.mjs — seven filter references plus the hardcoded
    Marketplace query identifier.
  • Seven Run: header comments under apps/vscode/test/ that print a command that no longer works.

Install links and snippets updated in apps/vscode/README.md and apps/site/src/App.vue.

flake.nix needs no change — apps/vscode is in neither workspacePaths nor workspaceNames.

Verification

Every check confirmed red on the unchanged tree before being trusted:

  • MANIFEST_OK 10 — name, publisher and displayName correct, and all ten command ids still start
    with pythinker. (asserts a non-zero command count first, so an empty list cannot satisfy it).
  • No pymodel.pythinker-code / pythoughts.pythinker-code anywhere in the repo.
  • No --filter pythinker-code in apps/vscode, .github, or package.json.
  • pnpm --filter pythinker exec … | grep -q FILTER_RESOLVES — the new workspace name resolves.
    (Piped through grep -q on purpose: bare pnpm --filter prints "No projects matched" and still
    exits 0, so the obvious form of this check cannot fail.)
  • pnpm --filter pythinker run typecheck (both the extension and webview-ui tsconfigs) → exit 0.
  • pnpm run lint → exit 0.

Note for the next release: a reserved-because-deleted name is invisible to every public query,
so pythinker being free can only be proven by the publish itself. If it collides too, the publish
script skips already-published targets, so a re-run after a second rename is safe.

Checklist

  • I have read the CONTRIBUTING document.
  • I have linked a related issue, or explained the problem above.
  • I have added tests that prove my feature works.
  • Ran gen-changesets skill, or this PR needs no changeset.
  • Ran gen-docs skill, or this PR needs no doc update.

Summary by CodeRabbit

  • Release Update

    • Renamed the VS Code extension to Pythinker with the new Marketplace ID pymodel.pythinker.
    • Updated installation commands, Marketplace links, and publishing destinations to reflect the new identifier.
    • Existing installations must be reinstalled using the new extension listing.
  • Documentation

    • Updated extension documentation and setup references with the new package and Marketplace details.

…e id

pythoughts.pythinker-code@0.8.8 was live on the Visual Studio Marketplace and
Open VSX on 2026-08-08 and has since been deleted. Both publisher pages exist
and list zero extensions, and vsce, the gallery API and the Open VSX API all
report not-found. The Marketplace permanently reserves the name of a removed
extension even against its original publisher, which is why every one of the
six targets on 0.18.0 failed with 'The extension pythinker-code already exists
in the Marketplace'. The name cannot be recovered, so the extension takes a new
one: pythinker, matching the CLI binary.

The manifest name is also the pnpm workspace name, so the release workflow and
the extension release script move with it. The ten pythinker.* command ids, the
publisher, and the display name are unchanged.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

elkaix has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@coderabbitai

coderabbitai Bot commented Aug 15, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 472aef39-03fa-48ef-96d4-ca7db65a8dbb

📥 Commits

Reviewing files that changed from the base of the PR and between b3f5c0a and b25ae31.

📒 Files selected for processing (14)
  • .changeset/rename-vscode-marketplace-id.md
  • .github/workflows/release.yml
  • apps/site/src/App.vue
  • apps/vscode/README.md
  • apps/vscode/package.json
  • apps/vscode/scripts/release-extension.mjs
  • apps/vscode/test/baseline.manager.test.ts
  • apps/vscode/test/bridge-handler.test.ts
  • apps/vscode/test/extension-host-smoke.test.ts
  • apps/vscode/test/extension-host/index.cjs
  • apps/vscode/test/pythinker-harness.integration.test.ts
  • apps/vscode/test/replay-resume.integration.test.ts
  • apps/vscode/test/vsix-package.test.ts
  • apps/vscode/test/workspace-paths.test.ts

📝 Walkthrough

Walkthrough

The VS Code extension identifier changes from pymodel.pythinker-code to pymodel.pythinker. Packaging, publishing, installation references, release documentation, and test commands now use the new identifier.

Changes

VS Code Marketplace ID rename

Layer / File(s) Summary
Extension identity and release targets
.changeset/..., .github/workflows/release.yml, apps/vscode/package.json, apps/vscode/scripts/release-extension.mjs
The package name, Marketplace lookup, packaging commands, and publishing commands now target pythinker and pymodel.pythinker.
Installation references
apps/site/src/App.vue, apps/vscode/README.md
Installation links and commands now reference pymodel.pythinker.
Test command and smoke-test references
apps/vscode/test/*
Test commands use the pythinker package filter. The smoke test checks pymodel.pythinker.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to b25ae

This PR updates the VS Code Marketplace/workspace identifier and matching release and documentation references; no actionable merge-blocking risk remains after normal checks.

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Title check ⚠️ Warning The title uses the required prefix and imperative mood and matches the changes, but it is 73 characters and exceeds the 72-character limit. Shorten the title to 72 characters or fewer while preserving the conventional-commit prefix and main change.
✅ Passed checks (4 passed)
Check name Status Explanation
Description check ✅ Passed The description follows the required sections, explains the problem and changes, and includes a completed checklist with verification details.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Comment @coderabbitai help to get the list of available commands.

@pkg-pr-new

pkg-pr-new Bot commented Aug 15, 2026

Copy link
Copy Markdown
pnpm dlx https://pkg.pr.new/@pymodel/pythinker-code@b25ae31
npx https://pkg.pr.new/@pymodel/pythinker-code@b25ae31

commit: b25ae31

@elkaix
elkaix merged commit 86a4f9a into main Aug 15, 2026
13 checks passed
@elkaix
elkaix deleted the fix/vscode-extension-rename branch August 15, 2026 02:27
elkaix pushed a commit that referenced this pull request Aug 16, 2026
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @pymodel/pythinker-code@0.19.0

### Minor Changes

- [#80](#80)
[`17818ea`](17818ea)
- Match the desktop app's sidebar, collapse animation, empty-state
visuals, and typography to the desktop design.

- [#80](#80)
[`17818ea`](17818ea)
- Add a Desktop app section to web settings with automatic updates on by
default, a manual update check, and a restart-to-update action.

- [#80](#80)
[`17818ea`](17818ea)
- Refresh the web UI accent color and show the animated mascot on
workflow cards, the activity spinner, and the empty state.

### Patch Changes

- [#80](#80)
[`17818ea`](17818ea)
- Fix sessions failing to load with an invalid event journal error after
questions or approvals were resolved.

- [#80](#80)
[`17818ea`](17818ea)
- Run on Node 20 and newer by only re-executing for FFI support on Node
26.4+.

- [#77](#77)
[`26f3d18`](26f3d18)
- Keep releases visible in the update channel when a CDN rebuild request
is temporarily lost.

- [#78](#78)
[`86a4f9a`](86a4f9a)
- Change the VS Code extension Marketplace ID to `pymodel.pythinker`.
Existing users must install the extension again under the new ID because
Microsoft permanently retired the previous ID.

- [#80](#80)
[`17818ea`](17818ea)
- Skip invalid sessions during listing instead of failing the whole
list.

- [#80](#80)
[`17818ea`](17818ea)
- Highlight the update notice in the terminal status bar with the
warning color.

- [#77](#77)
[`26f3d18`](26f3d18)
- Use a scoped GitHub App token for Homebrew tap updates.

- [#80](#80)
[`17818ea`](17818ea)
- Fix duplicated streamed transcript copies and lost paragraph breaks in
the web UI.
## @pymodel/pythinker-code-sdk@1.0.0

### Major Changes

- [#80](#80)
[`17818ea`](17818ea)
- Add question, approval, and prompt lifecycle events to the SDK session
event types.
## @pymodel/pythinker-desktop@0.1.1

### Patch Changes

- [#81](#81)
[`8717330`](8717330)
- Bound the Windows process-tree kill so a stalled taskkill cannot
freeze desktop shutdown

- [#81](#81)
[`8717330`](8717330)
- Fix Windows runtime staging and skip empty signing credentials in the
desktop release workflow

- [#81](#81)
[`8717330`](8717330)
- Stage the desktop Host closure inside the workspace so pnpm deploy
resolves the target on Windows

- [#81](#81)
[`8717330`](8717330)
- Add the Windows NSIS installer target, release script, and release
workflow job

- [#81](#81)
[`8717330`](8717330)
- Fix Windows process-tree shutdown, packaged-runtime guards, and
taskbar identity in the desktop app
## pythinker@0.9.2

### Patch Changes

- Updated dependencies
[[`17818ea`](17818ea)]:
  - @pymodel/pythinker-code-sdk@1.0.0

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Added desktop update settings, manual update checks, and
restart-to-update support.
  - Added SDK events for question, approval, and prompt lifecycles.
- Refreshed web visuals with updated accents and animated mascot
placement.
- Improved Windows desktop packaging, runtime handling, shutdown
behavior, and taskbar identity.

- **Bug Fixes**
- Improved session recovery, invalid-session handling, update-channel
resilience, and streamed transcript formatting.
- Added Node.js compatibility improvements and more reliable Homebrew
update authentication.

- **Releases**
  - Published desktop 0.1.1, code 0.19.0, VS Code 0.9.2, and SDK 1.0.0.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant